/** \file
 \brief Truncated/Shifted/differentiable Lennard-Jones.
 */
#ifndef FASTMD_LJC_INCLUDED
#define FASTMD_LJC_INCLUDED 1

#include "core/lj.hpp"

namespace FastMD 
{
	
	class LJCutOff : public LJ
	{
	public:
		explicit LJCutOff( const Real eps, const Real sig, const Real cut ) throw();
		virtual ~LJCutOff() throw();
		
		const Real r_c;
		const Real r_c_sq;
		const Real V_c;
		const Real F_c;
		
		virtual Real operator()( V3D &f_ij, const V3D &r_ij ) const throw();
		virtual const char *name() const throw();
		
	private:
		YOCTO_DISABLE_COPY_AND_ASSIGN(LJCutOff);
	};
	
}

#endif
